package com.psychologyCommunity.Community.dao;

import com.psychologyCommunity.Community.entity.Message;
import org.apache.ibatis.annotations.Mapper;
//import org.hamcrest.Condition;

import java.util.List;

@Mapper
public interface MessageMapper {
    //消息页面 是一个会话 列表，且它 支持分页，所以你得提供一个支持消息分页的方法
    //提供一个查询总行数的方法，点击一个会话是一个会话详情，它也是一个列表，同时
    // 要查询未读消息数量--一个是针对某个会话的未读消息数量、还有就是针对当前这个人的未读消息数量

    //1.查询当前用户的会话列表。每个会话显示的是最新的一条私信
    List<Message> selectConversions(int userId,int offset,int limit);

    //2、查询当前用户的会话数量
    int selectConversionCount(int userId);

    //3、查询某个会话所包含的私信列表
    List<Message> selectLetters(String conversationId,int offset,int limit);

    //4、查询某个会话所包含的私信数量
    int selectCount(String conversationId);

    //5、查询未读私信的数量  (有一点需要注意的是  未读一定是别人发给我的 )
    int selectLetterUnreadCount(int userId,String conversationId);

    //新增一个消息
    int insertMessage(Message message);

    //把消息 未读的状态设置为已读的状态 --在私信页面 一次可能需要改多个私信,所以直接用List来存
    int updateStatus(List<Integer> ids,int status);

    //查询某个主题下最新的通知
    Message selectLatestNotice(int userId, String topic);

    //查询某个主题所包含的通知的数量
    int selectNoticeCount(int userId,String topic);

    //查询未读的通知数量
    int selectNoticeUnreadCount(int userId,String topic);

    //查询某个主题所包含的通知列表
    List<Message> selectNotices(int userId,String topic,int offset,int limit);

}
